import axios from 'axios'

import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
const request = axios.create({
  baseURL: '/mock',
  timeout: 2000,
})

//请求拦截器
request.interceptors.request.use(
  (config) => {
    // config是请求的配置对象
    // config.params.xxx = xxx
    // config.data.yyy = yyy
    // 开始进度条
    NProgress.start()
    return config
  },
  () => {},
)

request.interceptors.response.use(
  // 成功的回调
  (response) => {
    // 结束进度条
    NProgress.done()
    // 响应状态码code 2xx表示功能成功（比如：登录功能，注册功能），非2xx表示功能失败
    if (response.data.code === 200) {
      return response.data.data
    } else {
      alert(response.data.message)
      return Promise.reject(response.data.message)
    }
  },
  // 失败的回调
  (error) => {
    // 结束进度条
    NProgress.done()
    // 错误信息提示
    alert(error)
    return Promise.reject(error)
  },
)

export default request
